/**
 *  @file
 *  @brief   枚举类AnalysisTypes定义，标识要执行的分析类型
 *  @author  wanghuan
 *  @date    2024.02.29
 *  @version  v1.0
 *  @par Copyright(c):  ShenGong  Simulation corporation
 */

#pragma once
#include "DataStructure/Common/DataStructureNamespace.h"
#include "DataStructure/Common/Integer.h"
SG_DATASTRUCTURE_FEM_NAMESPACE_OPEN

/**
 * @brief    求解类型
 *
 * @author   wuxingchuang
 * @date     2025.03.07
 */
enum class SOLType : SG::DataStructure::Common::I32
{
    SOL_UNKNOWN = 0,
    /**
     * @brief Statics with options:
     * Linear steady state heat transfer.
     * Alternate reduction.
     * Inertia relief.
     */
    SOL_SESTATIC = 101,
    SOL_SEMODES  = 103,  // Normal modes.
    /**
     * @brief   Buckling with options:
                Static analysis.
                Alternate reduction.
                Inertia relief
     */
    SOL_SEBUCKL  = 105,
    SOL_NLSTATIC = 106,  // Nonlinear or linear statics.
    SOL_SEDCEIG  = 107,  // Direct complex eigenvalues.
    SOL_SEDFREQ  = 108,  // Direct frequency response
    SOL_SEDTRAN  = 109,  // Direct transient response.
    SOL_SEMCEIG  = 110,  // Modal complex eigenvalues.
    SOL_SEMFREQ  = 111,  // Modal frequency response.
    SOL_SEMTRAN  = 112,  // Modal transient response.
    SOL_CYCSTATX = 114,  // Cyclic statics with option:    Alternate reduction.
    SOL_CYCMODE  = 115,  // Cyclic normal modes.
    SOL_CYCBUCKL = 116,  // Cyclic buckling.
    SOL_CYCFREQ  = 118,  // Cyclic direct frequency response.
    SOL_RANDOM   = 119,  // Random, optstruct use this ID
    SOL_SENLHARM = 128,  // Nonlinear Harmonic Response
    SOL_NLTRAN   = 129,  // Nonlinear or linear transient response.
    SOL_AESTAT   = 144,  // Static aeroelastic response
    SOL_SEFLUTTR = 145,  // Aerodynamic flutter.
    SOL_SEAERO   = 146,  // Aeroelastic response.
    SOL_NLSCSH   = 153,  // Static structural and/or steady state heat Transfer    analysis with options:    Linear or nonlinear analysis.
    /**
     * @brief    Transient structural and/or transient heat Transfer analysis with options:
                 Linear or nonlinear analysis.
     */
    SOL_NLTCSH = 159,
    SOL_DESOPT = 200,  // Design optimization.
    /**
     * @brief    Nonlinear Static and Implicit Transient Analysis and
                 all linear sequences from statics, modes, frequency,
                 and transient inclusive with perturbation analysis
                 based on previous nonlinear analysis
     */
    SOL_NONLIN = 400,
    SOL_NLTRAN700 = 700,  // Nonlinear Explicit Transient Analysis
};

SG_DATASTRUCTURE_FEM_NAMESPACE_CLOSE
